package com.xl.frontendproject;

import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet(name = "redirectForwardServlet", value = "/navigation")
public class RedirectForwardServlet extends HttpServlet {

    /**
     * 处理GET请求，演示重定向和转发操作
     * @param request HTTP请求对象，包含请求参数
     * @param response HTTP响应对象，用于执行重定向
     * @throws IOException 当发生输入输出异常时抛出
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        String action = request.getParameter("action");

        if ("redirect".equals(action)) {
            // 重定向到指定URL（客户端行为）
            response.sendRedirect("redirect-page.jsp");
        } else if ("forward".equals(action)) {
            try {
                // 转发请求（服务器端行为）
                request.getRequestDispatcher("forward-page.jsp").forward(request, response);
            } catch (Exception e) {
                // 发生异常时，发送服务器内部错误响应
                response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
            }
        } else {
            // 请求参数不合法时，发送错误请求响应
            response.sendError(HttpServletResponse.SC_BAD_REQUEST);
        }
    }
}
